/*
 * alberoNario.h
 *
 *  Created on: 11/dic/2014
 *      Author: Gabriel
 */

#ifndef ALBERONARIO_H_
#define ALBERONARIO_H_

#include <iostream>
#include "nodoAlbero.h"
using namespace std;

typedef bool boolean;
//typedef void (*funz) (NodoAlbero*);

class AlberoNario{
public:
	AlberoNario();
	~AlberoNario();

	int numNodi();
	int grado();
	NodoAlbero* padre(NodoAlbero*);
	NodoAlbero* radice();
	list figli(NodoAlbero*);
	NodoAlbero* aggiungiNodo(NodoAlbero*);
	void aggiungiSottoAlbero(AlberoNario*,NodoAlbero*);
	void rimuoviSottoAlbero(NodoAlbero*);

private:
	NodoAlbero * radiceAlbero;
};


#endif /* ALBERONARIO_H_ */
